Automated Compositional Analysis for Checking Component Substitutability

نویسندگان

  • Nishant Sinha
  • Don Thomas
  • Dawn Song
  • Corina Păsăreanu
  • Oded Maler
چکیده

Model checking is an automated technique to verify hardware and software systems formally. Most of the model checking research has focused on developing scalable techniques for verifying large systems. A number of techniques, e.g., symbolic methods, abstractions, compositional reasoning, etc. have been proposed towards this goal. While methods based on symbolic reasoning (using binary decision diagrams or satisfiability solving) and methods based on computing abstractions automatically in a counterexample-driven manner have proved to be useful in verifying hardware and software systems, they do not directly scale to systems with large number of modules or components. The reason is that they try to verify the complete system in a monolithic manner, which inevitably leads to the state-space explosion problem, i.e., there are too many states in the system to explore exhaustively. Compositional reasoning techniques try to address this problem by following a divide-and-conquer approach: the task of system verification is divided into several sub-tasks, each involving a small subset of system components. Assume-Guarantee Reasoning (AGR) is a particular form of compositional verification, where one first generates environment assumptions for a component and then discharges them on its environment (i.e., the other components) separately. Assume-Guarantee Reasoning methods have been mainly studied in a theoretical context traditionally. The central bottleneck in making them practical is the lack of algorithms to automatically compute appropriate environment assumptions for components. A recent approach for computing these assumptions relies on combining machine learning algorithms together with model checking techniques to achieve its goal. The technique uses machine learning algorithms for finite state machines in an iterative counterexample-driven manner, assisted by a model checker. In this thesis, we build an abstract framework for automated AGR based on machine learning algorithms and propose new algorithms for instantiating this framework for several different notions of composition and conformances. In particular, we propose compositional techniques for checking simulation conformance, based on learning regular tree languages, and for checking deadlock based on learning failure languages. Moreover, we present an approach to scale this framework to real-life systems communicating via shared memory by using new algorithms for learning machines with large alphabets together with symbolic model checking. Most industrial hardware and software systems are designed using previously available off-the-shelf components. Such component technologies are gaining acceptance in both hardware and software engineering as effective tools for quickly assembling complex systems from pre-developed components. During their life-cycle, these components may undergo several bug-fixes and upgrades and therefore need to be verified after every such component substitution step. In this thesis, we refer to this problem as checking component substitutability. This problem is pervasive across both software and hardware engineering

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Dynamic Component Substitutability Analysis

This paper presents an automated and compositional procedure to solve the substitutability problem in the context of evolving software systems. Our solution contributes two techniques for checking correctness of software upgrades: 1) a technique based on simultaneous use of over and under approximations obtained via existential and universal abstractions; 2) a dynamic assumeguarantee reasoning ...

متن کامل

A Survey on Compositional Veri cation

In this survey, we overview several compositional veriication approaches based on model checking, namely compositional minimization, classic assume guarantee reasoning and circular reasoning. We describe details of each of these approaches, and elaborate the general problems with some proposed solutions. We also summarize the advantages and disadvantages of each. In the last section, we give a ...

متن کامل

Type Inference of Simulink Hierarchical Block Diagrams in Isabelle

Simulink is a de-facto industrial standard for the design of embedded systems. In previous work, we developed a compositional analysis framework for Simulink models in Isabelle – the Refinement Calculus of Reactive Systems (RCRS), which allows checking compatibility and substitutability of components. However, standard type checking was not considered in that work. In this paper we present a me...

متن کامل

Modular and Incremental Analysis of Concurrent Software Systems

Modularization and abstraction are the keys to practical verification and analysis of large and complex systems. We present in an incremental methodology for the automatic analysis and verification of concurrent software systems. Our methodology is based on the theory of abstract interpretation. We first propose a compositional data flow analysis algorithm that computes invariants of concurrent...

متن کامل

Interface Generation and Compositional Verification in JavaPathfinder

We present a novel algorithm for interface generation of software components. Given a component, our algorithm uses learning techniques to compute a permissive interface representing legal usage of the component. Unlike our previous work, this algorithm does not require knowledge about the component’s environment. Furthermore, in contrast to other related approaches, our algorithm computes perm...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007